import Datastore from 'lowdb'
import LodashId from 'lodash-id'
import shortid from 'shortid'
import FileSync from 'lowdb/adapters/FileSync'
// import path from 'path'
import fs from 'fs-extra'
// 引入remote模块
import { remote, app } from 'electron'

// 根据process.type来分辨在哪种模式使用哪种模块
const APP = process.type === 'renderer' ? remote.app : app

// 获取electron应用的用户目录
const STORE_PATH = APP.getPath('userData')

if (process.type !== 'renderer') {
  // 如果不存在路径
  if (!fs.pathExistsSync(STORE_PATH)) {
    // 就创建
    fs.mkdirpSync(STORE_PATH)
  }
}
// 以同步的方式初始化lowdb读写的json文件名以及存储路径
const adapter = new FileSync('src/renderer/lowdb/data.json')
// const adapter = new FileSync(path.join(STORE_PATH, 'data.json'))

// lowdb接管该文件
const db = Datastore(adapter)
// 通过._mixin()引入lodash_id唯一id插件
db._.mixin(LodashId)
// 初始化数据用户库
if (!db.has('user').value()) {
  db.set('user', [{_id: shortid.generate(), name: 'admin', password: '123456'}]).write()
}
// 初始化数据项目管理
if (!db.has('projects').value()) {
  db.set('projects', []).write()
}
// 初始化数据资源管理
if (!db.has('resources').value()) {
  db.set('resources', []).write()
}
export default db
